'##############
'Автоинформатор речевой
'Навигатор
'##############

'Script Version: 1.0
'Omsi release: 1.0

'Needs:
'- Cockpit (питание 12В)

'Revision History:
'- Яковлев Вячеслав		04.02.2012	Создан файл

'------------------------------------------------------------------------------------------

'-------------------------------------------
' Триггеры автоинформатора
'-------------------------------------------

'-------------------------------------------
' Кнопка включения автоинформатора
'-------------------------------------------
{trigger:knp_inform_on}
	(L.L.cp_inform_on) !
	{if}
		1 (S.L.cp_inform_on) s1
		
		(L.L.elec_busbar_main)
		(L.L.cp_dop_obor) &&
		{if}
			(T.L.ev_IBIS-startupsound)
		{endif}
	{else}
		0 (S.L.cp_inform_on) s1
	{endif}
	(M.L.autoinform_on)
	(M.L.kippschaltersound)
{end}

'-------------------------------------------
' Кнопка воспроизведения текущей остановки
'-------------------------------------------
{trigger:knp_inform_play}
	(L.L.autoinform_on) 1 =
	{if}
		(T.L.ev_IBIS_piep)
	{endif}
{end}

'-------------------------------------------
' Кнопка перемотки следующая остановка\выбор-вверх
'-------------------------------------------
{trigger:knp_inform_up}
	(L.L.autoinform_on) 1 =
	{if}
		(T.L.ev_IBIS_piep)
	{endif}
	
'	(L.L.autoinform_menu_mode)
'	(L.L.autoinform_menu_select) 0 > &&
'	{if}
'		(L.L.autoinform_menu_select) 1 - (S.L.autoinform_menu_select)
'	{endif}

	(L.L.rlbnd_ziel) 1 + (S.L.rlbnd_ziel)
{end}

'-------------------------------------------
' Кнопка перемотки предыдущая остановка\выбор-вниз
'-------------------------------------------
{trigger:knp_inform_down}
	(L.L.autoinform_on) 1 =
	{if}
		(T.L.ev_IBIS_piep)
	{endif}
	
'	(L.L.autoinform_menu_mode)
'	(L.L.autoinform_menu_select) 2 < &&
'	{if}
'		(L.L.autoinform_menu_select) 1 + (S.L.autoinform_menu_select)
'	{endif}
	(L.L.rlbnd_ziel) 1 - (S.L.rlbnd_ziel)
{end}





'-------------------------------------------
' Триггеры навигатора
'-------------------------------------------

'-------------------------------------------
' Кнопка включения\выключения навигатора
'-------------------------------------------
{trigger:knp_navigator_on}
	(L.L.navigator_on) 1 =
	{if}
		(T.L.ev_IBIS_piep)
	{endif}
	
	(L.L.cp_navigator_on) ! (S.L.cp_navigator_on)
{end}

'-------------------------------------------
' Кнопка отмены ввода
'-------------------------------------------
{trigger:knp_navigator_otmena}
	(L.L.navigator_on) 1 =
	{if}
		(T.L.ev_IBIS_piep)
	{endif}
	
	(L.L.navigator_entering)
	{if}
		0 (S.L.navigator_stand) (S.L.navigator_entering) (S.L.navigator_klava_visible)
		1 (S.L.navigator_menu)
	{else}
		(L.L.navigator_menu)
		{if}
			1 (S.L.navigator_stand) 
			0 (S.L.navigator_menu) (S.L.navigator_entering) (S.L.navigator_klava_visible)
		{endif}
	{endif}
{end}


'-------------------------------------------
' Кнопка возврата к предыдущему пункту
'-------------------------------------------
{trigger:knp_navigator_back}
	(L.L.navigator_on) 1 =
	{if}
		(T.L.ev_IBIS_piep)
	{endif}
	
	(L.L.navigator_menu)
	(L.L.navigator_menu_select) 0 > &&
	{if}
		(L.L.navigator_menu_select) 1 - (S.L.navigator_menu_select)
	{endif}
{end}

'-------------------------------------------
' Кнопка перехода на следующий пункт
'-------------------------------------------
{trigger:knp_navigator_next}
	(L.L.navigator_on) 1 =
	{if}
		(T.L.ev_IBIS_piep)
	{endif}
	
	(L.L.navigator_menu)
	(L.L.navigator_menu_select) 2 < &&
	{if}
		(L.L.navigator_menu_select) 1 + (S.L.navigator_menu_select)
	{endif}
{end}

'-------------------------------------------
' Скрыть\показать цифровую клавиатуру
'-------------------------------------------
{trigger:knp_navigator_klava}
	(L.L.navigator_on) 1 =
	(L.L.navigator_entering) &&
	{if}
		(L.L.navigator_klava_visible) ! (S.L.navigator_klava_visible)
	{endif}
{end}


'----------------------------------------
' Начальные значения переменных
'----------------------------------------
{macro:autoinform_init}
	0 (S.L.autoinform_menu_mode) (S.L.autoinform_stand_mode) (S.L.autoinform_stop_timer) (S.L.autoinform_antirepeat)
	(S.L.autoinform_menu_select)
	
	1 (S.L.navigator_stand) 
	0 (S.L.navigator_entering) (S.L.navigator_menu) (S.L.navigator_klava_visible)
{end}


'----------------------------------------
' Фрейм макросов
'----------------------------------------
{macro:autoinform_frame}
	(M.L.autoinform_on)
	(M.L.autoinform_modes)
'	(M.L.autoinform_menu_perehod)
	(M.L.autoinform_stand_mode)
'	(M.L.autoinform_menu_mode)

	(M.L.navigator_on-off)
	(M.L.navigator_modes)

{end}

'----------------------------------------
' Звук кнопок\переключателей\тумблеров
'----------------------------------------
{macro:kippschaltersound}
	l1
	{if}
		(T.L.ev_kippschalter_ein)
	{else}
		(T.L.ev_kippschalter_aus)
	{endif}	
{end}

'----------------------------------------
' Включение\выключение информатора
'----------------------------------------
{macro:autoinform_on}
	(L.L.cp_inform_on)
	(L.L.elec_busbar_main) &&
	(L.L.cp_dop_obor) &&
	{if}	
		1 (S.L.autoinform_on)	
		
		(L.L.autoinform_zastavka_timer) 3 < 
		{if}
			1 (S.L.autoinform_zastavka_visible)
			(L.L.autoinform_zastavka_timer) (L.S.Timegap) + (S.L.autoinform_zastavka_timer) 
		{else}
			1 (S.L.autoinform_ramka_visible)
			(L.L.autoinform_antirepeat) 0 =
			{if}
				1 (S.L.autoinform_stand_mode) (S.L.autoinform_antirepeat) 
				0 (S.L.autoinform_menu_mode)
			{endif}
			0 (S.L.autoinform_zastavka_visible) 
		{endif}
	{else}
		0 (S.L.autoinform_on) (S.L.autoinform_zastavka_visible) (S.L.autoinform_ramka_visible)
		(S.L.autoinform_zastavka_timer) (S.L.autoinform_menu_mode) (S.L.autoinform_stand_mode) 
		(S.L.autoinform_antirepeat) (S.L.autoinform_str1_visible) (S.L.autoinform_str2_visible)
	{endif}	
{end}

'----------------------------------------
' Режимы работы информатора (обычный\меню)
'----------------------------------------
{macro:autoinform_modes}
	(L.L.autoinform_stand_mode)
	{if}
		1 
	{else}
		0
	{endif}
	(S.L.autoinform_osnova_visible)
	
'	(L.L.autoinform_menu_mode)
'	{if}
'		1 
'	{else}
'		0
'	{endif}
'	(S.L.autoinform_menu_visible)
	
{end}

'----------------------------------------
' Режимы работы информатора (обычный\меню)
'----------------------------------------
{macro:autoinform_menu_perehod}
	(L.L.cp_inform_stop) 1 =
	{if}
		(L.L.autoinform_stop_timer) 2 < 
		{if}
			(L.L.autoinform_stop_timer) (L.S.Timegap) + (S.L.autoinform_stop_timer) 
		{else}
			(L.L.autoinform_menu_mode) 0 =
			{if}
				1 (S.L.autoinform_menu_mode)
				0 (S.L.autoinform_stand_mode)	
			{else}
				0 (S.L.autoinform_menu_mode)
				1 (S.L.autoinform_stand_mode)
			{endif}
			0 (S.L.autoinform_stop_timer) (S.L.cp_inform_stop)
		{endif}
	{endif}
{end}

'----------------------------------------
' Режимы работы информатора ОБЫЧНЫЙ
'----------------------------------------
{macro:autoinform_stand_mode}
	(L.L.autoinform_stand_mode)
	{if}
'		Заголовок- выводит номер маршрута
		(L.$.Matrix_Nr) "   " $=
		{if}
			"Маршрут не выбран" $
		{else}
			"Маршрут " (L.$.Matrix_Nr) $+
		{endif}
		(S.$.AIF_zagolovok)
		
'		(L.$.act_busstop) $ (S.$.AIF_busstop)

		(L.$.IBIS_busstop_name) 20 $SetLengthL (S.$.AIF_busstop)
		
		(L.$.IBIS_busstop_name_next) 20 $SetLengthL (S.$.AIF_next_busstop)
		
		0 (S.L.autoinform_str2_visible)
		(L.L.autoinform_osnova_visible)
		{if}
			1 (S.L.autoinform_str1_visible)
		{endif}
	{endif}

{end}

'----------------------------------------
' Режимы работы информатора МЕНЮ
'----------------------------------------
{macro:autoinform_menu_mode}
	(L.L.autoinform_menu_mode)
	{if}
'		Заголовок- пояснение
		(L.L.autoinform_menu_select) 1 =
		{if}
			0 (S.L.autoinform_str2_visible)
			1 (S.L.autoinform_str1_visible)
			"Введите код маршрута" 
		{else}
			(L.L.autoinform_menu_select) 2 =
			{if}
				1 (S.L.autoinform_str2_visible)
				0 (S.L.autoinform_str1_visible)
				"Введите рейс и к/ост"
			{else}
				0 (S.L.autoinform_str2_visible) (S.L.autoinform_str1_visible)
				"МЕНЮ"
			{endif}
		{endif}
		$ (S.$.AIF_zagolovok)
		
'		Подписи полей
'		"Код маршрута" $ 
'		(L.L.IBIS_Linie_Suffix) $IntToStr
		(L.$.IBIS_Complex_Line) $
		(S.$.AIF_marshrut)
		"Рейс и" "@" $+ 
		"к/ост" $+ (S.$.AIF_terminus)

			
	{endif}
{end}


'----------------------------------------
' Включение\выключение навигатора
'----------------------------------------
{macro:navigator_on-off}
	(L.L.cp_navigator_on)
	(L.L.elec_busbar_main) &&
	(L.L.cp_dop_obor) &&
	{if}	
		1 (S.L.navigator_on)
	{else}
		0 (S.L.navigator_on)
	{endif}

	
{end}

'----------------------------------------
' Режимы работы навигатора- обычный\меню\выбор
'----------------------------------------
{macro:navigator_modes}

	(L.L.navigator_stand)
	(L.L.navigator_on) &&
	{if}
		(M.V.GetTTDelay) s1 60 / s0
	
		1 (S.L.navigator_line_visible)
		
		(L.$.Matrix_Nr) "   " $=
		{if}
			"Маршрут не выбран" 23 $SetLengthL $
		{else}
			"Маршрут " (L.$.Matrix_Nr) 15 $SetLengthL $+
		{endif}
		(L.$.Temp_time)	6 $SetLengthR $+
		"@" $+
		"к/ост:" $+ 
		
		(L.$.IBIS_terminus_name) 
		23 $SetLengthL $+
		(S.$.navigator_stand1)
		
		">" (L.$.IBIS_busstop_name) 25 $SetLengthL $+ "@" $+
		" " $+ (L.$.IBIS_busstop_name_next) 25 $SetLengthL $+ "@" $+
		"=============================" $+ "@" $+
		
		(L.L.schedule_active)
		{if}
			l1 abs 6 >=
			{if}
				l0 0 >=
				{if}
					"ОТСТАВАНИЕ: " $+
				{else}
					"ОПЕРЕЖЕНИЕ: " $+
				{endif}
			{else}
				" " $+
			{endif}
			l0 abs trunc " 2" $IntToStrEnh $+  
			"." $+ 
			l0 abs l0 abs trunc - 10 * " 1"  $IntToStrEnh $+ 
			" мин." $+
		{else}
			" " $+
		{endif}
		(S.$.navigator_stand2)
	{else}
		0 (S.L.navigator_line_visible) 
	{endif}
	
	
	
	(L.L.navigator_menu)
	(L.L.navigator_on) &&
	{if}
		1 (S.L.navigator_menu_visible)
		
		"МЕНЮ" "@" $+
		"==========================" $+ "@" $+
		
		(L.L.navigator_menu_select) 0 =
		{if}
			">" $+
		{else}
			" " $+
		{endif}
		"Ввести маршрут           " $+ "@" $+
		(L.L.navigator_menu_select) 1 =
		{if}
			">" $+
		{else}
			" " $+
		{endif}
		"Ввести конечную остановку" $+ "@" $+
		
		(L.L.navigator_menu_select) 2 =
		{if}
			">" $+
		{else}
			" " $+
		{endif}
		"Ввести номер рейса       " $+ "@" $+
		(S.$.navigator_menu)
	{else}
		0 (S.L.navigator_menu_visible)
	{endif}
	
	
	
	(L.L.navigator_entering)
	(L.L.navigator_on) &&
	{if}
		1 (S.L.navigator_select_visible)
		
		(L.L.navigator_menu_select) 0 =
		{if}	
		"Введите код маршрута:" "@" $+
		{else}
			(L.L.navigator_menu_select) 1 =
			{if}
				"Введите код конечной:" "@" $+
			{else}
				"Введите код рейса:" "@" $+
			{endif}
		{endif}
		
		(L.L.IBIS_input) 0 <=
		{if}			
			(L.L.IBIS_BlinkOn)
			{if}
				(L.L.navigator_menu_select) 0 =
				{if}	
					(L.$.IBIS_Complex_Line) $+
				{else}
					(L.L.navigator_menu_select) 1 =
					{if}
						(L.L.IBIS_TerminusCode) "03" $IntToStrEnh $+
					{else}
						(L.L.IBIS_Route) "02" $IntToStrEnh $+
					{endif}
				{endif}
			{else}
				" " $+
			{endif}
		{else}
			(L.L.IBIS_input) $IntToStr $+
		{endif}
		
		"@" $+
		
		(L.L.IBIS_mode) 4 =
		(L.L.navigator_menu_select) 2 = &&
		{if}
			(L.L.IBIS_BlinkOn)
			{if}
				"Код рейса неверен" $+
			{else}
				"" $+
			{endif}
		{else}
			(L.L.IBIS_mode) 6 =
			(L.L.navigator_menu_select) 1 = &&
			{if}
				(L.L.IBIS_BlinkOn)
				{if}
					"Код конечной неверен" $+
				{else}
					"" $+
				{endif}
			{else}
				(L.L.navigator_menu_select) 1 =
				{if}
					(L.$.IBIS_terminus_name) 23 $SetLength $+
				{else}
					" " $+
				{endif}
			{endif}
		{endif}
		(S.$.navigator_enter1)
		
		"Показать/скрыть клавиатуру" $
		(S.$.navigator_enter2)
	{else}
		0 (S.L.navigator_select_visible)
	{endif}
	
{end}

